Проблема двухязыкового подхода связана с исторической необходимостью использования высокоуровневого, «медленного» языка (Python, R, MATLAB) для прототипирования, после чего вынуждены переписывать код на низкоуровневый, «быстрый» язык (C++, Fortran) для производства. Что мы можем ожидать от современных методов проектирования языков и компиляторов? Язык Julia устраняет так называемый «налог на переписывание».
1. Пробел между производительностью и продуктивностью
Исследователи традиционно жертвуют скоростью выполнения ради простоты использования. Язык Julia использует современные технологии компиляции на базе LLVM чтобы обеспечить, что высокоуровневые абстракции не приводят к потере эффективности на уровне машинного кода.
2. Многофункциональность и двойственность
Проблема синтаксис языка Julia похож на синтаксис MATLAB, что делает его доступным сразу, однако это гораздо более универсальный язык программирования способный выполнять веб-индексацию и системное программирование. Более того, язык Julia столь же удобен, как и язык R, в области статистики, но он идеально подходит для выполнения статистики и линейной алгебры одновременно без необходимости использовать расширения на языке С.